Oop 5 | Abstract Classes, Interfaces, Annotations